class Solution {
public:
    int numberOfAlternatingGroups(vector<int>& colors) {
        int n = colors.size(), k = 3;
        int cnt = 1, ret = 0;
        for(int i = 1; i < n * 2; i++)
        {
            if(colors[i % n] != colors[(i - 1) % n])
                cnt++;
            else
                cnt = 1;
            if(cnt >= k && i >= n)
                ret++;
        }
        return ret;
    

        // int n = colors.size(), ret = 0;
        // for(int i = 0; i < n; i++)
        // {
        //     int left = 0, right = 0;
        //     if(i == 0)
        //     {
        //         left = colors[n - 1];
        //         right = colors[i + 1];
        //     }
        //     else if(i == n - 1)
        //     {
        //         right = colors[0];
        //         left = colors[i - 1];
        //     }
        //     else
        //     {
        //         left = colors[i - 1];
        //         right = colors[i + 1];
        //     }
        //     if(left == right && colors[i] != left)
        //         ret++;
        // }
        // return ret;
    }
};